<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Chat Example Using STOMP Over WebSockets</title>
  <link href="css/bootstrap.min.css" rel="stylesheet">
  <link href="css/bootstrap.min.responsive.css" rel="stylesheet">
  <style type="text/css">
    body { padding-top: 40px; }
  </style>
</head>

<body>

<div class="navbar navbar-fixed-top">
  <div class="navbar-inner">
    <div class="container">
      <a class="brand" href="#">Stomp Over WebSocket Chat Example</a>
    </div>
  </div>
</div>

<div class="container-fluid">
  <div class="row-fluid">
    <div class="span6">
      <div id="connect">
        <div class="page-header">
          <h2>Server Login</h2>
        </div>
        <form class="form-horizontal" id='connect_form'>
          <fieldset>
            <div class="control-group">
              <label>WebSocket URL</label>
              <div class="controls">
                <input name=url id='connect_url' value='ws://127.0.0.1:8080/chat' type="text">
              </div>
            </div>
            <div class="control-group">
              <label>User</label>
              <div class="controls">
                <input id='connect_login' placeholder="User Login" value="admin" type="text">
              </div>
            </div>
            <div class="control-group">
              <label>Password</label>
              <div class="controls">
                <input id='connect_passcode' placeholder="User Password" value="password" type="password">
              </div>
            </div>
            <div class="control-group">
              <label>Destination</label>
              <div class="controls">
                <input id='destination' placeholder="Destination" value="/topic/chat.general" type="text">
              </div>
            </div>
            <div class="form-actions">
              <button id='connect_submit' type="submit" class="btn btn-large btn-primary">Connect</button>
            </div>
          </fieldset>
        </form>
      </div>
      <div id="connected" style="display:none">
        <div class="page-header">
          <h2>Chat Room</h2>
        </div>
        <div id="messages">
        </div>
        <form class="well form-search" id='send_form'>
          <button class="btn" type="button" id='disconnect' style="float:right">Disconnect</button>
          <input class="input-medium" id='send_form_input' placeholder="Type your message here" class="span6"/>
          <button class="btn" type="submit">Send</button>
        </form>
      </div>
    </div>
    <div class="span4">
      <div class="page-header">
        <h2>Debug Log</h2>
      </div>
      <pre id="debug"></pre>
    </div>
  </div>
</div>

<!-- Scripts placed at the end of the document so the pages load faster -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script src="stomp.js"></script>
<script>
$(document).ready(function() {
  if(window.WebSocket) {
    var client, destination;
    $('#connect_form').submit(function() {
      var url = $("#connect_url").val();
      var login = $("#connect_login").val();
      var passcode = $("#connect_passcode").val();
      destination = $("#destination").val();

      client = Stomp.client(url);

      // this allows to display debug logs directly on the web page
      client.debug = function(str) {
        $("#debug").append(str + "\n");
      };

      // the client is notified when it is connected to the server.
      client.connect(login, passcode, function(frame) {
        client.debug("connected to Stomp");
        $('#connect').fadeOut({ duration: 'fast' });
        $('#connected').fadeIn();
        client.subscribe(destination, function(message) {
          $("#messages").append("<p>" + message.body + "</p>\n");
        });
      });
      return false;
    });

    $('#disconnect').click(function() {
      client.disconnect(function() {
        $('#connected').fadeOut({ duration: 'fast' });
        $('#connect').fadeIn();
        $("#messages").html("")
      });
      return false;
    });

    $('#send_form').submit(function() {
      var text = $('#send_form_input').val();
      if (text) {
        client.send(destination, {}, text);
        $('#send_form_input').val("");
      }
      return false;
    });
  } else {
    $("#connect").html("\
            <h1>Get a new Web Browser!</h1>\
            <p>\
            Your browser does not support WebSockets. This example will not work properly.<br>\
            Please use a Web Browser with WebSockets support (WebKit or Google Chrome).\
            </p>\
        ");
  }
});
</script>

</body>
</html>